Conventional disk drives with magnetic media organize data in concentric tracks that are spaced apart. The concept of shingled writing is a form of magnetic recording and has been proposed as a way of increasing the areal density of magnetic recording. In shingle-written magnetic recording (SMR) media a region (band) of adjacent tracks are written so as to overlap one or more previously written tracks. The shingled tracks must be written in sequence unlike conventionally separated tracks, which can be written in any order. The tracks on a disk surface are organized into a plurality of shingled regions (also called I-region) which can be written sequentially from an inner diameter (ID) to an outer diameter (OD) or from OD to ID. Once written in the shingled structure, an individual track cannot be updated in place, because that would overwrite and destroy the overlapping tracks. Shingle-written data tracks, therefore, from the user's viewpoint are sometimes thought of like append-only logs. To improve the performance of SMR drives, a portion of the media is allocated to a so-called “exception regions” (E-regions) which are used as staging area for data which will ultimately be written to an I-region. The E-region is sometimes referred to as an E-cache.
Address indirection in the shingle-written storage device's internal architecture is useful to emulate existing host interfaces at least to some extent and shield the host from the complexities associated with SMR. Conventionally host file systems use logical block addresses (LBAs) in commands to read and write blocks of data without regard for actual locations (physical block address (PBA)) used internally by the storage device. Hard disk drives have had some level of LBA-PBA indirection for decades that, among other things, allows bad sectors on the disk to be remapped to good sectors that have been reserved for this purpose. Address indirection is typically implemented in the controller portion of the drive's architecture. The controller translates the LBAs in host commands to an internal physical address, or something closer to a physical address.
The conventional LBA-PBA mapping for defects does not need to be changed often. In contrast, in an SMR device the physical block address (PBA) of a logical block address (LBA) can change frequently depending on write-history. For example, background processes such as garbage collection move data sectors from one PBA to another but the LBA stays the same. The indirection system for SMR is a natively dynamic system in which the controller translates host address requests to physical locations. In a SMR system, the LBA-PBA mapping generally changes with every write operation because the system dynamically determines the physical location on the media where the host data for an LBA will be written. The same LBA will usually be written to a different location the next time the host LBA is updated. The indirection system provides a dynamic translation layer between host LBAs and the current physical locations on the media.
SMR drives rely on indirection to mitigate some of the performance impact due to the extra constraints brought by shingled writing. The indirection scheme however requires regular garbage collection which causes command completion times to be somewhat higher for some benchmarks than on standard PMR drives.
Various protocols have been developed in the prior art to allow hard disk drives to optimize their operations by taking actions based on knowledge that is available to the drive. For example, Native Command Queuing (NCQ) is an extension of the standard Serial ATA protocol which allows disk drives to optimize performance by executing commands in an order other than as sequentially received. However, the additional freedom exercised by the drive can in some circumstances caused undesirable results and create timing issues for the host. Further protocols are needed to constrain the operations of the drive when required by the host. Isochronous command completion (ICC) protocol allows the host to send a time limit for completion of specific read or write commands to hard drive. See for example, US published application 20100011149 by Molaro, et al., Jan. 14, 2010 which describes “deadlines” for queued read and write commands that can be advisory or hard deadlines. The host specifies the deadlines in the read and write commands.